package cn.etg.day08;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * 使用异常捕获完成下述操作
 * 将控制台输入的每一行字符串使用缓冲字符输出流PrintWriter
 * 按行以GBK编码写入到文件note.txt中
 * @author Xiloer
 *
 */

public class Test02 {
    public static void main(String[] args) {
        // 创建Scanner对象用于读取控制台输入
        Scanner scanner = new Scanner(System.in);
        // 创建PrintWriter对象用于写入文件
        PrintWriter writer = null;

        try {
            // 初始化PrintWriter，指定编码为GBK
            writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream("note.txt"), "GBK"));

            // 提示用户输入
            System.out.println("请输入内容，输入'exit'结束：");

            // 循环读取每一行输入并写入文件
            while (true) {
                String line = scanner.nextLine();
                if ("exit".equalsIgnoreCase(line)) {
                    break;
                }
                writer.println(line);
            }
        } catch (Exception e) {
            // 捕获并处理异常
            e.printStackTrace();
        } finally {
            // 关闭流
            if (writer != null) {
                writer.close();
            }
            scanner.close();
        }
    }
}
